#ifndef GAMETD_TOWERMANAGER_H
#define GAMETD_TOWERMANAGER_H

#include <vector>
#include "../tower/Tower.h"
#include "Manager.h"

class TowerManager : public Manager<TowerManager>
{
    friend class Manager<TowerManager>;

public:
    void OnUpdate(double delta);
    void OnRender(SDL_Renderer* renderer);
    double GetPlaceCost(TowerType type);
    double GetUpgradeCost(TowerType type);
    double GetDamageRange(TowerType type);
    void PlaceTower(TowerType type, const SDL_Point& idx);
    void UpgradeTower(TowerType type);

protected:
    TowerManager() = default;
    ~TowerManager() = default;

private:
    std::vector<Tower*> towerList;
};




#endif //GAMETD_TOWERMANAGER_H
